package com.example.administrator.school;

import android.app.Application;
import android.content.Context;
import android.content.res.Resources;
import android.os.Build;
import android.os.StrictMode;
import android.widget.Toast;

import com.blankj.utilcode.util.Utils;
import com.xiumiing.uilibrary.base.AppManager;
import com.xiumiing.uilibrary.base.BaseActivity;

/**
 * ----------BigGod be here!----------/
 * ***┏┓******┏┓*********
 * *┏━┛┻━━━━━━┛┻━━┓*******
 * *┃             ┃*******
 * *┃     ━━━     ┃*******
 * *┃             ┃*******
 * *┃  ━┳┛   ┗┳━  ┃*******
 * *┃             ┃*******
 * *┃     ━┻━     ┃*******
 * *┃             ┃*******
 * *┗━━━┓     ┏━━━┛*******
 * *****┃     ┃神兽保佑*****
 * *****┃     ┃代码无BUG！***
 * *****┃     ┗━━━━━━━━┓*****
 * *****┃              ┣┓****
 * *****┃              ┏┛****
 * *****┗━┓┓┏━━━━┳┓┏━━━┛*****
 * *******┃┫┫****┃┫┫********
 * *******┗┻┛****┗┻┛*********
 * ━━━━━━神兽出没━━━━━━
 * 版权所有：个人
 * 作者：Created by a.wen.
 * 创建时间：2018/9/23
 * Email：13872829574@163.com
 * 内容描述：
 * 修改人：a.wen
 * 修改时间：${DATA}
 * 修改备注：
 * 修订历史：1.0
 */
public class App extends Application {
    private static App mApp;

    @Override
    public void onCreate() {
        super.onCreate();
        mApp = this;
        //初始化工具类UtilsCode
        Utils.init(this);

        //从Android 7.0开始，一个应用提供自身文件给其它应用使用时，如果给出一个file://格式的URI的话，应用会抛出FileUriExposedException。
        // 这是由于谷歌认为目标app可能不具有文件权限，会造成潜在的问题。所以让这一行为快速失败 解决方案
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
            StrictMode.setVmPolicy(builder.build());
        }

    }

    public static Context getAppContext() {
        return mApp;
    }

    public static BaseActivity currentActivity() {
        return (BaseActivity) AppManager.getAppManager().currentActivity();
    }

    public static synchronized App getInstance() {
        return mApp;
    }

    public static Resources getAppResources() {
        return mApp.getResources();
    }

    /**
     * 吐司一哈子
     *
     * @param msg
     */
    public void showToast(String msg) {
        if (null == toast) {
            toast = Toast.makeText(App.this,
                    msg,
                    Toast.LENGTH_SHORT);
        } else {
            toast.setText(msg);
        }
        toast.show();
//        ToastUtils.show(msg);
    }

    /**
     * 吐司一哈子
     *
     * @param msg
     */
    public void showToast(int msg) {
        showToast(getString(msg));
//        ToastUtils.show(msg);
    }

    private static Toast toast;

    @Override
    public void onTerminate() {
        super.onTerminate();
    }

}
